package com.gl.ruanzhu.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.gl.ruanzhu.dto.TaskDto;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gl.ruanzhu.dto.TaskIndustryDto;
import com.gl.ruanzhu.indto.TaskInDto;
import com.gl.ruanzhu.mapper.ProductDemandMapper;
import com.gl.ruanzhu.outDto.TaskOutDto;
import com.gl.ruanzhu.service.ProductDemandDalService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;

@Service
//@SuppressWarnings("all")
public class ProductDemandDalServiceImpl implements ProductDemandDalService {

    @Autowired
    ProductDemandMapper productDemandMapper;

    @Override
    public void saveTask(TaskDto taskDto) {
        productDemandMapper.saveTask(taskDto);
    }

    @Override
    public int uploadFile(MultipartFile zipFile) {
        return 0;
    }

    @Override
    public PageInfo<TaskOutDto> taskList(TaskInDto taskDto) {
        PageHelper.startPage(taskDto.getPageNum(), taskDto.getPageSize());
        List<TaskOutDto> taskDtos = productDemandMapper.queryList(taskDto);

        return new PageInfo<TaskOutDto>(taskDtos);

    }

    @Override
    public  TaskOutDto  taskDetails(String id) {
        TaskOutDto taskDto = productDemandMapper.queryTaskDetails(id);
        if(taskDto!=null) {
            List<TaskOutDto> taskDtos = productDemandMapper.queryTaskChildDetails(taskDto.getId() + "");
            if(taskDtos.size()>0 ) {
                taskDto.setChildren(taskDtos);
            }
        }
        return taskDto;
    }
    @Override
    public void updateTask(TaskDto taskDto) {
         productDemandMapper.updateTask(taskDto);
    }

    @Override
    public void updateTaskState(TaskDto taskDto) {
        taskDto.setFalish(true);
        taskDto.setFalishTime(new Date());
        productDemandMapper.updateTaskState(taskDto);
    }

    @Override
    public void   saveChildTask(TaskDto taskDto) {
//        String fileName = file.getOriginalFilename();
//       // logger.info("上传的文件名为：" + fileName);
//        // 获取文件的后缀名
//        String suffixName = fileName.substring(fileName.lastIndexOf("."));
//        // 文件上传后的路径
//        String projectPath = new File("").getAbsolutePath();
//        //文件上传后的路径"+projectPath);
//        //File.separator获取不同操作系统下的分隔符。
//        String path=projectPath;
//        File dest = new File(path + File.separator  + fileName);
//        // 检测是否存在目录
//        if (!dest.getParentFile().exists()) {
//            dest.getParentFile().mkdirs();
//        }
//        taskDto.setEnclosureUrl(path);
//        taskDto.setEnclosureName(fileName);
//        try {
//            file.transferTo(dest);
//
//
//        } catch (IllegalStateException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        productDemandMapper.saveChildTask(taskDto);
    }

    @Override
    public void delById(String id) {
        productDemandMapper.delById(id);
    }


}
